package main

import (
	"fmt"
)

//byte和rune类型  byte是unit8的别名 rune是int32的别名
//go语言中为了处理非ascii码类型的字符，定义了新的rune类型(中文以及其他类型 utf8)
func main() {
	s := "Hello通州"
	//len()求得是byte字节的数量
	n := len(s) //求字符串s的长度。把长度保存到变量n中
	fmt.Println(n)
	// for i := 0; i < len(s); i++ { byte类型
	// 	fmt.Printf("%c\n", s[i]) %c的意思是把数字打印成一个字符  当按照索引打印字符时，中文会出现乱码，因此使用rune方法
	// }
	for _, c := range s { //rune类型
		fmt.Printf("%c\n", c)
	}
	//字符串修改(强制转换，因为字符串不能直接修改)
	//s2 := "白萝卜"
	var s2 string = "白萝卜"
	s3 := []rune(s2) //把字符串强制转换成了一个rune切片
	s3[0] = '红'
	fmt.Println(string(s3)) //把rune切片强制转换为字符串
	c1 := "红"
	c2 := '红'
	fmt.Printf("%T\n", c1)
	fmt.Printf("%T\n", c2)
	//类型转换
	n1 := 10
	f := float64(n1)
	fmt.Printf("%T\n", f)
	fmt.Println(f)
}
